Change the interface between XendRoot.get_network_script and Vifctl so that a
authoremellor@leeni.uk.xensource.com <emellor@leeni.uk.xensource.com>
Sun, 30 Oct 2005 12:48:34 +0000 (13:48 +0100)
committeremellor@leeni.uk.xensource.com <emellor@leeni.uk.xensource.com>
Sun, 30 Oct 2005 12:48:34 +0000 (13:48 +0100)
list is passed rather than a single string.  This expands the config-file
interface so that parameters may be passed to the network scripts from the
config file.

Fix XendRoot._logError (missing asterisk before args parameter).

In XendRoot, allow an empty configuration file.  This makes it easier to unit
test code reliant on XendRoot.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/python/xen/xend/Vifctl.py
tools/python/xen/xend/XendRoot.py

index 382cba5c04846a911a7398a74854a004a4a050e1..9320930b27d6e04f22a4df188fa266b03033da34 100644 (file)
@@ -32,4 +32,5 @@ def network(op):
         raise ValueError('Invalid operation: ' + op)
     script = XendRoot.instance().get_network_script()
     if script:
-        os.spawnl(os.P_WAIT, script, script, op)
+        script.insert(1, op)
+        os.spawnv(os.P_WAIT, script[0], script)
index b51046a87b60a3f7893f22d563effd3d524db21e..564bc75ed3606ab4e2ee8eee74c73f5ec58cf23b 100644 (file)
@@ -114,7 +114,7 @@ class XendRoot:
         """
         return self.components.get(name)
 
-    def _logError(self, fmt, args):
+    def _logError(self, fmt, *args):
         """Logging function to log to stderr. We use this for XendRoot log
         messages because they may be logged before the logger has been
         configured.  Other components can safely use the logger.
@@ -144,7 +144,10 @@ class XendRoot:
                     config = sxp.parse(fin)
                 finally:
                     fin.close()
-                config.insert(0, 'xend-config')
+                if config is None:
+                    config = ['xend-config']
+                else:
+                    config.insert(0, 'xend-config')
                 self.config = config
             except Exception, ex:
                 self._logError('Reading config file %s: %s',
@@ -250,7 +253,9 @@ class XendRoot:
         s = self.get_config_value('network-script')
 
         if s:
-            return os.path.join(self.network_script_dir, s)
+            result = s.split(" ")
+            result[0] = os.path.join(self.network_script_dir, result[0])
+            return result
         else:
             return None
 
@@ -258,9 +263,6 @@ class XendRoot:
     def get_enable_dump(self):
         return self.get_config_bool('enable-dump', 'no')
 
-    def get_vif_bridge(self):
-        return self.get_config_value('vif-bridge', 'xenbr0')
-
     def get_vif_script(self):
         return self.get_config_value('vif-script', 'vif-bridge')